package com.shop.entity;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 消息 实体类。
 *
 * @author 彭新才 
 * @since 2024-10-15
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "消息")
@Table(value = "shop_message")
public class ShopMessage implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 自增id
     */
    @Id(keyType = KeyType.Auto)
    @Schema(description = "自增id")
    private Long id;

    /**
     * 用户id
     */
    @Schema(description = "用户id")
    private Long userId;

    /**
     * 系统类型（默认 default, 其他按照SYSTEM_TYPE常量类型）
     */
    @Schema(description = "系统类型（默认 default, 其他按照SYSTEM_TYPE常量类型）")
    private String systemType;

    /**
     * 标题
     */
    @Schema(description = "标题")
    private String title;

    /**
     * 详情
     */
    @Schema(description = "详情")
    private String detail;

    /**
     * 业务id
     */
    @Schema(description = "业务id")
    private Long businessId;

    /**
     * 业务类型，字符串（如：订单、充值、提现、等...）
     */
    @Schema(description = "业务类型，字符串（如：订单、充值、提现、等...）")
    private String businessType;

    /**
     * 消息类型（0普通通知, ...）
     */
    @Schema(description = "消息类型（0普通通知, ...）")
    private Integer type;

    /**
     * 是否已读（0否, 1是）
     */
    @Schema(description = "是否已读（0否, 1是）")
    private Integer isRead;

    /**
     * 是否已删除（0否, 大于0删除时间）
     */
    @Schema(description = "是否已删除（0否, 大于0删除时间）")
    private Long isDeleteTime;

    /**
     * 用户是否已删除（0否, 大于0删除时间）
     */
    @Schema(description = "用户是否已删除（0否, 大于0删除时间）")
    private Long userIsDeleteTime;

    /**
     * 添加时间
     */
    @Schema(description = "添加时间")
    private Long addTime;

}
